/**
 * Created by apple on 2017/7/29.
 */
var express = require('express');
var router = express.Router();

var UserSecRouter = module.exports;
var UserToken = require('../db/user_tokens.js');
var UserSecDao = require('../dao/user_sec');
var VerifyCodeDao = require("../dao/verify_code");

/**
 * 管理模块登陆
 * user_sec/mngLogin
 * 参数：token、app_sid、module、pwd
 */
UserSecRouter.mngLogin = function (req, res) {
    var par = paramAll(req);
    if (!par.app_sid) return res.json(new ERR('app标识不为空', 400));
    if (!par.module) return res.json(new ERR('模块名不为空', 400));
    if (!par.pwd) return res.json(new ERR('密码不为空', 400));
    par.pwd = encryPassword(par.pwd);
    UserToken.checkLogin(par.token, function (err, userInfo) {
        if (err) return res.json(new ERR(err, 400));

        par.uid = userInfo.uid;
        par.isLogin = true;
        par.pwd = encryPassword(par.pwd);
        UserSecDao.checkUserSec(par, function (err, result) {
            if (err) {
                res.json(new ERR(err, 400));
                return;
            }
            res.json(new PKG(result));
        })

    });
}
router.post('/mngLogin', UserSecRouter.mngLogin);

/**
 * 判断是否有设置密码锁
 * user_sec/checkUserSec
 * 参数：token、app_sid、module
 */
UserSecRouter.checkUserSec = function (req, res) {
    var par = paramAll(req);
    if (!par.app_sid) return res.json(new ERR('app标识不为空', 400));
    if (!par.module) return res.json(new ERR('模块名不为空', 400));
    UserToken.checkLogin(par.token, function (err, userInfo) {
        if (err) return res.json(new ERR(err, 400));
        par.uid = userInfo.uid;
        UserSecDao.checkUserSec(par, function (err, result) {
            if (err) {
                res.json(new ERR(err, 400));
                return;
            }
            res.json(new PKG(result));
        })

    });
}
router.post('/checkUserSec', UserSecRouter.checkUserSec);



/**
 * 设置密码锁
 * user_sec/setMngPwd
 * 参数：token、app_sid、module、pwd、verifycode
 */
UserSecRouter.setMngPwd = function (req, res) {
    var par = paramAll(req);
    if (!par.app_sid) return res.json(new ERR('请先选择产品', 400));
    if (!par.module) return res.json(new ERR('模块名不为空', 400));
    if (!par.verifycode) return res.json(new ERR('验证码不为空', 400));
    if (!par.pwd) return res.json(new ERR('密码不为空', 400));
    par.pwd = encryPassword(par.pwd);
    UserToken.checkLogin(par.token, function (err, userInfo) {
        if (err) return res.json(new ERR(err, 400));
        if(userInfo.main_userInfo) return res.json(new ERR('主账号才能操作', 400));
        par.uid = userInfo.uid;
        par.time = new Date();
        par.account = userInfo.account;
        par.type = 5;//操作密码锁
        par.ip = req.ip;
        VerifyCodeDao.verifyCode(par, function (err, data) {
            if (err) {
                res.json(new ERR(err, 400));
                return;
            }
            UserSecDao.setMngPwd(par, function (err, result) {
                if (err) {
                    res.json(new ERR(err, 400));
                    return;
                }
                res.json(new PKG(result));
            });
        });
    });
}

router.post('/setMngPwd', UserSecRouter.setMngPwd);

/**
 * 关闭密码锁
 * user_sec/delMngPwd
 * 参数：token、app_sid、module、verifycode
 */
UserSecRouter.delMngPwd = function (req, res) {
    var par = paramAll(req);
    if (!par.app_sid) return res.json(new ERR('请先选择产品', 400));
    if (!par.module) return res.json(new ERR('模块名不为空', 400));
    if (!par.verifycode) return res.json(new ERR('验证码不为空', 400));
    UserToken.checkLogin(par.token, function (err, userInfo) {
        if (err) return res.json(new ERR(err, 400));
        if(userInfo.main_userInfo) return res.json(new ERR('主账号才能操作', 400));
        par.account = userInfo.account;
        par.uid = userInfo.uid;
        par.time = new Date();
        par.type = 5;//操作密码锁
        par.ip = req.ip;
        VerifyCodeDao.verifyCode(par, function (err, data) {
            if (err) {
                res.json(new ERR(err, 400));
                return;
            }
            UserSecDao.delMngPwd(par, function (err, result) {
                if (err) {
                    res.json(new ERR(err, 400));
                    return;
                }
                res.json(new PKG(result));
            });
        });
    });
}

router.post('/delMngPwd', UserSecRouter.delMngPwd);


module.exports = router;